package com.Manager;

import com.DTO.LandValueP;
import com.DTO.LandValueRequestPara;
import com.DTO.LandValueResponse;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;


public class LandValueEvalManger {

    public LandValueResponse computerLandValueEval(LandValueRequestPara para){
        LandValueResponse rtn = new LandValueResponse();
        try {
            FileInputStream ins = new FileInputStream("速判模型.xlsx");

            XSSFWorkbook wb = new XSSFWorkbook(ins);

            XSSFSheet sh = wb.getSheet("拿地速判模型");

            //
            sh.getRow(3).getCell(5).setCellValue(para.getCity());
            sh.getRow(3).getCell(6).setCellValue(para.getBulidingType());
            sh.getRow(3).getCell(7).setCellValue(para.isPresent()? "是":"否");
            sh.getRow(3).getCell(8).setCellValue(para.getLandArea()==null?0: para.getLandArea());
           // sh.getRow(3).getCell(9).setCellValue(para.getBuildingArea()==null?0: para.getBuildingArea());
            sh.getRow(3).getCell(10).setCellValue(para.getVolumetricRate()==null?0: para.getVolumetricRate().doubleValue());
            sh.getRow(3).getCell(12).setCellValue(para.getSalesRatio()==null?0: para.getSalesRatio().doubleValue());

            sh.getRow(6).getCell(8).setCellValue(para.getHardcoverAveragePrice()==null?0: para.getHardcoverAveragePrice().doubleValue());
            sh.getRow(6).getCell(9).setCellValue(para.getRoughcastAveragePrice()==null?0: para.getRoughcastAveragePrice().doubleValue());
//            sh.getRow(6).getCell(11).setCellValue(para.getHardcoverSaleUnilaterally()==null?0: para.getHardcoverSaleUnilaterally().doubleValue());

            sh.getRow(11).getCell(1).setCellValue(para.getFloorRrice()==null?0:para.getFloorRrice().doubleValue());
            sh.getRow(11).getCell(8).setCellValue(para.getSpecialCost()==null?0:para.getSpecialCost().doubleValue());


            ins.close();

            wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
//            FileOutputStream outs = new FileOutputStream("H:\\IdeaWorkSpace\\LandValueEvaluate\\速判模型1.xlsx");
//            wb.write(outs);
//            outs.close();
//            wb.close();

            XSSFCell cell = sh.getRow(3).getCell(1);


//
            rtn.setTotalInvestment(new BigDecimal(sh.getRow(3).getCell(1).getNumericCellValue()));

            rtn.setTotalValue(new BigDecimal(sh.getRow(3).getCell(2).getNumericCellValue()));

            rtn.setNetRrofit(new BigDecimal(sh.getRow(3).getCell(3).getNumericCellValue()));

            rtn.setProfitMargin(new BigDecimal(sh.getRow(3).getCell(4).getNumericCellValue()));

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return rtn;
    }

}
